home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
R-Shows
/
(c)expo87.d64
/
recover 1541.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
4KB
|
94 lines
1 REM ***********************************************************
2 REM * 'RECOVER.1541' RECOVER *
3 REM * *
4 REM * VERSION 2.0 12/10/82 LPS *
5 REM * *
6 REM * DESIGNED BY - CIMMARON CORPORATION *
7 REM * MODIFIED BY - CBM AUST *
8 REM * *
9 REM ***********************************************************
20 DN$=""
21 RT$="":RT$=RT$+RT$
22 C0$=CHR$(0):CR$=CHR$(13):EX$=CHR$(147)
23 SP$=" "
80 DIMFL$(223),T%(223),S%(223),DT%(223),DS%(223),BL%(223)
90 M=53280:POKEM,1:POKEM+1,1:POKE53272,23:OPEN1,8,15:GOTO1000
500 REM *** READ SCRATCHED DIRECTORY [9,0,FL$(FL%)]
501 OPEN9,8,9,"#":T%=18:S%=1:FL%=0
502 FL%=0:PRINT#1,"U1"9;0;T%;S%:PRINT#1,"B-P"9;0
503 GET#9,NT$:NT%=0:IFNT$<>""THENNT%=ASC(NT$)
504 GET#9,NS$:NS%=0:IFNS$<>""THENNS%=ASC(NS$)
505 FORI=2TO226STEP32:PRINT#1,"B-P"9;I:GET#9,TY$:IFTY$<>""GOTO511
506 GET#9,T$:IFT$=""THENT$=C0$:GOTO511
507 GET#9,S$:IFS$=""THENS$=C0$
508 T%(FL%)=ASC(T$):S%(FL%)=ASC(S$):DT%(FL%)=T%:DS%(FL%)=S%:BP%(FL%)=I
509 PRINT#1,"B-P"9;I+19:PRINT#9,CHR$(13);:PRINT#1,"B-P"9;I+3
510 INPUT#9,FL$(FL%):FL%=FL%+1
511 NEXTI:T%=NT%:S%=NS%:IFT%<>0GOTO502
512 CLOSE9:RETURN
600 REM *** GET LINK [9(OPEN),NT%,NS%]
601 PRINT#1,"U1"9;0;T%;S%:PRINT#1,"B-P"9;0
602 GET#9,NT$:NT%=0:IFNT$<>""THENNT%=ASC(NT$)
603 GET#9,NS$:NS%=0:IFNS$<>""THENNS%=ASC(NS$)
604 RETURN
700 REM *** ALLOCATE AND CHECK
701 PRINT#1,"B-A"0;T%;S%:GOSUB900:OK%=1:IFEN$="65"THENOK%=0
702 RETURN
900 REM *** DISK ERROR CHECK
901 INPUT#1,EN$:IFEN$="00"OREN$="65"THENRETURN
902 PRINT" DISK ERROR #"EN$:(null):STOP
1000 PRINT"[147][149] 1541 [211][195][210][193][212][195][200][197][196][160][198][201][204][197][160][210][197][195][207][214][197][210][217] "
1001 REM *** SELECT FILE
1010 PRINT" [201]NSERT DISKETTE IN DRIVE #0 "
1015 PRINT" [210][197][212][213][210][206][146] = READY [195][204][210][146] = STOP "
1020 GETG$:IFG$<>CR$ANDG$<>EX$GOTO1020
1025 IF G$ = EX$ THEN END
1030 PRINT#1,"I0":GOSUB900:OPEN9,8,9,"#":PRINT#1,"U1"9;0;18;0
1040 PRINT#1,"B-P"9;165:PRINT#9,CR$;:PRINT#1,"B-P"9;144:INPUT#9,ID$:CLOSE9
1050 PRINT"[145] [196][201][211][203]: "ID$" "
1055 PRINT" Y [146] = ACCEPT N [146] = REJECT "
1060 GETG$:IFG$<>"Y"ANDG$<>"N"GOTO1060
1070 PRINT"[145]"SP$:IFG$="N"GOTO1000
1075 GOSUB500
1080 PRINT"[147]"
1085 PRINT" [211][195][210][193][212][195][200][197][196][160][198][201][204][197][160][196][201][210][197][195][212][207][210][217][160]"
1086 PRINT"### FILENAME [212] [211][160]"
1087 PRINT"--------------------------"
1090 FORI=0TOFL%STEP20:FORJ=0TO19:PRINTRIGHT$(" "+STR$(I+J+1),3);
1100 PRINT" "LEFT$(FL$(I+J)+SP$,16);
1105 PRINTRIGHT$(STR$(T%(I+J)),2)" "RIGHT$(STR$(S%(I+J)),2):NEXTJ
1110 INPUT" [210][197][195][207][214][197][210][160]# ([210][197][212][213][210][206] TO SEE MORE) [146][160][160][160][157][157][157]";RC$
1120 RC%=VAL(RC$):IFRC%<>0THENI=FL%
1130 NEXTI:IFRC%<>0GOTO1180
1140 PRINTLEFT$(DN$,24)" [197][206][196][160][207][198][160][196][201][210][197][195][212][207][210][217] - [210][197][208][197][193][212](Y/N)?[160][146] ";
1150 GETG$:IFG$<>"Y"ANDG$<>"N"GOTO1150
1160 IFG$="Y"GOTO1085
1170 PRINT"[147]":GOTO1000
1180 RC%=RC%-1:IFFL$(RC%)=""GOTO1140
1200 PRINT"[147] [210][197][195][207][214][197][210]: "FL$(RC%)" "
1210 PRINT" Y [146] = ACCEPT N [146] = REJECT "
1220 GETG$:IFG$<>"Y"ANDG$<>"N"GOTO1220
1230 IFG$="N"THENPRINT"[145]"SP$:GOTO1080
1240 PRINT"[145] S [146]=[211][197][209] U [146]=[213][211][210] P [146]=[208][210][199] ?"
1250 GETG$:IFG$<>"S"ANDG$<>"U"ANDG$<>"P"GOTO1250
1260 TY%=130:IFG$>"P"THENTY%=129:IFG$>"S"THENTY%=131
1270 T%=T%(RC%):S%=S%(RC%):BL%=0:OPEN9,8,9,"#":XT%=T%:XS%=S%
1280 PRINT"[145] [210][197][195][207][214][197][210][217][160][201][206][160][208][210][207][199][210][197][211][211] "
1290 PRINT""LEFT$(RT$,38)CHR$(15);
1300 GOSUB700:IFOK%=0GOTO1400
1305 BL%=BL%+1:PRINT""RIGHT$(" "+STR$(T%),3)RIGHT$(" "+STR$(S%),3);
1310 GOSUB600:IFNT%=0GOTO1500
1320 XT%=T%:XS%=S%:T%=NT%:S%=NS%:GOTO1300
1400 IFXT%=T%ANDXS%=S%THENME$=" [206][207] [210][197][195][207][214][197][210][217][160][208][207][211][211][201][194][204][197] ":GOTO1600
1405 PRINT#1,"U1"9;0;XT%;XS%:PRINT#1,"B-P"9;255:PRINT#9,CR$;:IFTY%=130GOTO1420
1410 PRINT#1,"B-P"9;253:PRINT#9,C0$C0$C0$;
1420 PRINT#1,"U2"9;0;NT%;NS%
1430 ME$=" [208][193][210][212][201][193][204][160][210][197][195][207][214][197][210][217][160][207][206][204][217] "
1500 PRINT#1,"U1"9;0;DT%(RC%);DS%(RC%):PRINT#1,"B-P"9;BP%(RC%)
1510 PRINT#9,CHR$(TY%);:PRINT#1,"B-P"9;BP%(RC%)+28
1520 HI%=BL%/256:LO%=BL%-HI%*256:PRINT#9,CHR$(LO%)CHR$(HI%);
1530 PRINT#1,"U2"9;0;DT%(RC%);DS%(RC%)
1600 IFME$=""THENME$=" [198][213][204][204][160][210][197][195][207][214][197][210][217][160][211][213][195][195][197][211][211][198][213][204][160] [160]"
1610 CLOSE9:CLOSE15:PRINT"[147]"ME$:END
2000 OPEN15,8,15,"S0:RECOVER.1541":CLOSE15:SAVE"RECOVER.1541",8